package com.view;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

import com.model.Evento;
import com.model.Tipo;
import com.rn.EventoRN;
import com.rn.TipoRN;

@ManagedBean(name="eventoBean")
@RequestScoped
public class EventoBean {
	
	private Tipo tipoSelecionado;
	private Evento eventoSelecionado = new Evento();
	private List<Evento> lista = null;
	private List<SelectItem> tipoSelect;
	private List<Tipo> listaTipos;


	public void salvar(){
		
		/*Autor: Artur Veiga
			Status = 1, evento vai acontecer
		*/
		EventoRN eventoRN = new EventoRN();
		
		eventoSelecionado.setStatus(1);
		eventoRN.registraEvento(eventoSelecionado);
		FacesMessage faces = new FacesMessage("Evento Cadastrado com sucesso!");
		FacesContext contexto = FacesContext.getCurrentInstance();
		contexto.addMessage(null, faces);
		
		
		
	}
	

	public Evento getEventoSelecionado() {
		return eventoSelecionado;
	}

	public void setEventoSelecionado(Evento eventoSelecionado) {
		this.eventoSelecionado = eventoSelecionado;
	}
	
	
	public Tipo getTipoSelecionado() {
		return tipoSelecionado;
	}


	public void setTipoSelecionado(Tipo tipoSelecionado) {
		this.tipoSelecionado = tipoSelecionado;
	}


	public void setLista(List<Evento> lista) {
		this.lista = lista;
	}


	public List<Evento> getLista() {
		EventoRN eventoRN = new EventoRN();
		
		if(lista == null){
			lista = eventoRN.listar();
		}
		
		return lista;
	}


	public List<SelectItem> getTipoSelect() {
		if(this.tipoSelect == null){
			tipoSelect = new ArrayList<SelectItem>();
			
			TipoRN tipoRN = new TipoRN();
			listaTipos = tipoRN.listar();
			if(listaTipos != null && !listaTipos.isEmpty()){
				SelectItem item;
					for (Tipo tiposLista : listaTipos) {
					item = new SelectItem(tiposLista, tiposLista.getNome());
					tipoSelect.add(item);
				}
			}
		}
		return tipoSelect;
	}
	
	
	
	
}
